var $memberTable = $('#memberTable');
var chartsData = [];

$(function(){
    memberTableInit();//表格初识化
    // lineDatas();//折线数据初始化
    $('#customerId').selectpicker();

    startTime = new Date().getTime();
    var dom = echarts.init(document.getElementById('memberChart'));
    dom.showLoading();  // echarts加载动画
    getData(1);
    getData(2);
    getData(3);
    getData(4);
    getData(5);
    getData(6);
    getData(7);
    getData(8);
    getData(9);
    getData(10);
})

/**
 * 功能：获取联系人跟进统计表数据
 * */
var lineData = {
    thisYearVipCustomerAnalyse: {},
    topYearVipCustomerAnalyse: {}
}
var getIndex = 0;
function getData(type) {
    $.ajax({
        url: '/customerController/vipCustomerAnalyse?type=' + type,
        type: 'get',
        dataType: "json",
        cache: true,
        success: (function (data) {
            if (data.code == "000000") {
                getIndex++;
                // console.log(data.data);
                var analyseType;
                var subType;
                if (type % 2 == 0) {
                    analyseType = 'thisYearVipCustomerAnalyse';
                } else {
                    analyseType = 'topYearVipCustomerAnalyse';
                }
                switch (type) {
                    case 1: // 去年会员消费占比
                    case 2: // 今年会员消费占比
                        subType = 'vipBuyRatio';
                        break;
                    case 3: // 去年会员复购率
                    case 4: // 本年会员复购率
                        subType = 'vipAgainBuyRatio'
                        break;
                    case 5: // 去年会员保持率
                    case 6: // 本年会员保持率
                        subType = 'vipHoldRatio';
                        break;
                    case 7: // 去年会员流失率
                    case 8: // 本年会员流失率
                        subType = 'vipOutRatio';
                        break;
                    case 9: // 去年会员交易增长率
                    case 10:// 本年会员交易增长率
                        subType = 'vipBuyRiseRatio';
                        break;
                }
                lineData[analyseType][subType] = data.data[analyseType][subType];
                if (getIndex == 10) {
                    console.log('联系人跟进统计表数据：', lineData);
                    LineInit('memberChart', lineData)
                }
            } else {
                $.alert('错误代码：' + data.code);
            }
        }),
        error: (function (res) {
            $.alert('获取数据失败');
            console.log(res);
        })
    });
}

//防止表头与表格不对齐
$(window).resize(function () {
    $memberTable.bootstrapTable('resetView');
});

function memberTableInit(){
    //先销毁表格
    $memberTable.bootstrapTable('destroy');
    $memberTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/selectVipCustomerList',//请求地址
        method: 'get',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'membershipExpirationTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        // serverSort: true,
        uniqueId: 'returnMoneyId',
        idField: 'returnMoneyId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",//可供选择的每页的行数

        fixedColumns: true,     // 冻结列
        fixedNumber: 1,         // 左侧固定列
        fixedRightNumber: 0,    // 右侧固定列
        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'customerId', visible: false},
            {title: '客户名称', field: 'customerName',align: 'left', valign: 'middle'},
            {title: '所有人', field: 'userName', align: 'left', valign: 'middle'},
            {title: '会员等级', field: 'membershipLevel', align: 'left', valign: 'middle'},
            {title: '会员到期时间', field: 'membershipExpirationTm', align: 'left', valign: 'middle',sortable:true},
            {title: '操作', field: 'operate', visible: false, align: 'center', events: operateEvents, formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000"){
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数z
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    })
}

/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index){

}

window.operateEvents = {

}

function queryParams(params) {
    params.membershipLevel = $('#customerId').val() == ''?null:$('#customerId').val();
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    return params;
}

$("#customerId").on('change',function () {
    $memberTable.bootstrapTable('refreshOptions', {pageNumber: 1,queryParams: queryParams});
});

/**
 * 功能：折线图数据
 * 说明：废弃单接口获取所有数据
 */
function lineDatas(){
    var dom = echarts.init(document.getElementById('memberChart'));
    dom.showLoading();  // echarts加载动画

    $.ajax({
        type: 'get',
        dataType: "json",
        url: '/customerController/vipCustomerAnalyse',
        data:{},
        // cache: true,
        async : true,
        success: (function (result) {
            if (result.code == "000000") {
                console.log(result)
                LineInit('memberChart',result.data)
            } else {
                alert("请求失败");
            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}

/**
 * 折线图初始化
 */
function LineInit(id,data){
    let dom = document.getElementById(id);
    let myChart = echarts.init(dom);
    let option = {
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            type: 'scroll',
            orient: 'horizontal', //方向
            // height: 50,
            width:720,
            data: ['去年会员消费占比', '去年会员复购率', '去年会员保持率', '去年会员流失率', '去年会员交易增长率','本年会员消费占比', '本年会员复购率', '本年会员保持率', '本年会员流失率', '本年会员交易增长率'],
            x:'center',
            y:'30'
        },
        // legend: [{
        //     data: ['去年会员消费占比', '去年会员复购率', '去年会员保持率', '去年会员流失率', '去年会员交易增长率'],
        //     x:'center',
        //     y:'0%'
        // },{
        //     data: [ '本年会员消费占比', '本年会员复购率', '本年会员保持率', '本年会员流失率', '本年会员交易增长率'],
        //     x:'center',
        //     y:'7%'
        // }],
        grid: {
            x: '3%',
            x2: '4%',
            y: '95',
            y2: '35',
            containLabel: true
        },
        xAxis: [{
            type: 'category',
            boundaryGap: false,
            data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
            axisTick: {
                show: false
            },
            axisLine: {
                lineStyle: {
                    color: '#eeeeee',
                    width: 1 //这里是为了突出显示加上的
                }
            },
            axisLabel: {
                textStyle: {
                    color: '#999',
                    fontSize: 12,
                    padding: [10, 0, 0, 0]
                }
            }
        }],
        yAxis: [
            {
                type: 'value',
                name:"（上一年/比率）",
                color: '#999999',
                nameTextStyle: {
                    padding: [0, 0, 6, 0],
                    align: 'right',
                    color: '#333',
                },
                axisTick: {
                    show: false
                },
                axisLine: {
                    lineStyle: {
                        color: 'rgba(255, 129, 109, 0.1)',
                        width: 0 //这里是为了突出显示加上的
                    }
                },
                axisLabel: {
                    textStyle: {
                        color: '#999',
                        padding: [0, 10, 0, 0]
                    }
                },
                splitArea: {
                    areaStyle: {
                        color: 'rgba(255,255,255,.5)'
                    }
                },
                splitLine: {
                    show: true,
                    lineStyle: {
                        color: '#eee',
                        width: 1,
                        type: 'dashed'
                    }
                }
            },
            {
                type: 'value',
                name:"（今年/比率）",
                color: '#999999',
                nameTextStyle: {
                    padding: [0, 0, 6, 0],
                    align: 'left',
                    color: '#333',
                },
                axisTick: {
                    show: false
                },
                axisLine: {
                    lineStyle: {
                        color: 'rgba(255, 129, 109, 0.1)',
                        width: 0 //这里是为了突出显示加上的
                    }
                },
                axisLabel: {
                    textStyle: {
                        color: '#999',
                        padding: [0, 10, 0, 0]
                    }
                },
                splitArea: {
                    areaStyle: {
                        color: 'rgba(255,255,255,.5)'
                    }
                },
                splitLine: {
                    show: true,
                    lineStyle: {
                        color: '#eee',
                        width: 1,
                        type: 'dashed'
                    }
                }
            }
        ],
        series: [
            {
                name: '去年会员消费占比',
                type: 'line',
                yAxisIndex:0,
                data: data.topYearVipCustomerAnalyse.vipBuyRatio
            },
            {
                name: '去年会员复购率',
                type: 'line',
                yAxisIndex:0,
                data: data.topYearVipCustomerAnalyse.vipAgainBuyRatio
            },
            {
                name: '去年会员保持率',
                type: 'line',
                yAxisIndex:0,
                data: data.topYearVipCustomerAnalyse.vipHoldRatio
            },
            {
                name: '去年会员流失率',
                type: 'line',
                yAxisIndex:0,
                data: data.topYearVipCustomerAnalyse.vipOutRatio
            },
            {
                name: '去年会员交易增长率',
                type: 'line',
                yAxisIndex:0,
                data: data.topYearVipCustomerAnalyse.vipBuyRiseRatio
            },
            {
                name: '本年会员消费占比',
                type: 'line',
                yAxisIndex:1,
                data: data.thisYearVipCustomerAnalyse.vipBuyRatio
            },
            {
                name: '本年会员复购率',
                type: 'line',
                yAxisIndex:1,
                data: data.thisYearVipCustomerAnalyse.vipAgainBuyRatio
            },
            {
                name: '本年会员保持率',
                type: 'line',
                yAxisIndex:1,
                data: data.thisYearVipCustomerAnalyse.vipHoldRatio
            },
            {
                name: '本年会员流失率',
                type: 'line',
                yAxisIndex:1,
                data: data.thisYearVipCustomerAnalyse.vipOutRatio
            },
            {
                name: '本年会员交易增长率',
                type: 'line',
                yAxisIndex:1,
                data: data.thisYearVipCustomerAnalyse.vipBuyRiseRatio
            }
        ]
    };
    myChart.setOption(option);
    console.log('联系人跟进统计表加载时间：' + (new Date().getTime() - startTime));
    myChart.hideLoading();  // 获取数据后关闭加载动画
    window.addEventListener("resize",function(){
        myChart.resize();
    });
}